Rate adaptation in wireless systems

ABSTRACT

Techniques and systems for rate adaption in wireless systems are disclosed. A disclosed technique includes generating confidence measures for a plurality of data rates based at least on a first indicator and a second indicator, the first indicator corresponding to packet loss associated with packets transmitted by a device at a first data rate that is selected from the plurality of data rates, and the second indicator corresponding to one or more signal quality values associated with one or more packets received by the device; selecting, from the plurality of data rates, a second data rate based at least on the confidence measures; and transmitting one or more additional packets at the second data rate.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 12/983,825, filed on Jan. 3, 2011 (now U.S. Pat.No. 8,693,331), which is a continuation of and claims priority to U.S.patent Ser. No. 10/734,440, filed on Dec. 11, 2003 (now U.S. Pat. No.7,864,678), which claims priority to U.S. Provisional Application Ser.No. 60/494,437, filed on Aug. 12, 2003.

BACKGROUND

The data rate at which a wireless device transmits may depend on thewireless environment in which the device is transmitting. The wirelessenvironment may be affected by such factors as interference, packetcollisions, reflections, etc. A wireless device may attempt to select anoptimal data rate for a given environment using a data rate selectionalgorithm.

In the IEEE 802.11 family of specifications, a wireless device initiatestransmission at the highest possible data rate. If the wireless devicereceives an acknowledgement (ACK) from a receiving device, it is assumedthat the wireless environment can support the highest data rate andfurther transmissions occur with this (highest) date rate. Otherwise thedata rate is lowered in a step-wise fashion until an ACK is obtained.Such a strategy may waste bandwidth. Furthermore, this strategy can leadto successive packet failures, which may cause TCP timeouts andassociated decreases in link throughput.

SUMMARY

A transceiver may include a transmit section operative to transmitpackets, a receive section operative to receive packets, and a rateselector operative to select a data rate for transmission. The rateselector may select the data rate based upon a received signal qualityvalue determined by the receive section and a packet loss indicatorvalue determined by the transmit section. The received signal qualityvalue may be, e.g., an RSSI (Received Signal Strength Indicator) value,an SNR (signal to noise ratio) value, an SINR (signal to interferencenoise ratio) value, or a SQM (signal quality measure, which is the mean(geometric, arithmetic, or other) of the SNRs across all tones). Thepacket loss indicator value may be, e.g., a retry counter value, abit-error update value, a packet error update value, a symbol errorupdate value, or a CRC (Cyclic Redundancy Check) indicator value.

The rate selector may include a table including available data rates,each associated with a nominal received signal quality value. The rateselector may generate a confidence value for each available data rateusing the received signal quality value and the packet loss indicatorvalue. In an embodiment using RSSI for the signal quality value and aretry counter for the packet loss indicator value, the confidence valueis obtained by solving the equation:Confidence[j]=RSSI_(avg)−RSSI_(TH) [j]−Δ _(RSSI),where RSSI_(TH)[j] comprises a nominal received signal strength valueassociated with a data rate [j] in a table. The rate selector thenselects a data rate associated with a positive confidence value, in anembodiment, the lowest positive confidence value.

The rate selector may include a state machine that monitors the packetloss indicator value and determines whether a current data rate causesan excessive number of failed packet transmissions or an excessivenumber of successful packet transmissions, and updates an adjustmentvalue for the signal quality value accordingly.

The transceiver selector may include a power adaptor that increases atransmit power of the transmit section in response to the selected datarate falling below a minimum threshold data rate and decreases thetransmit power in response to the selected data rate exceeding a maximumthreshold data rate.

The rate selector may include a hardware section that progressivelydecreases the data rate in response to the packet loss indicator valueincreasing until a “successful” data rate is achieved.

The rate selector may select a data rate value directly from the packetloss indicator value in response to the received signal quality valuefalling below a minimum signal quality value.

The transceiver may be used in a wireless LAN system that complies withone of the IEEE 802.11 family of specifications.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a wireless system.

FIG. 2 is a block diagram of a transceiver with a rate adaptationmodule.

FIG. 3 is a plot illustrating an RSSI (Received Signal StrengthIndicator) measurement.

FIG. 4 shows a nominal RSSI table.

FIG. 5 is a block diagram of a rate adaptation module.

FIG. 6 shows an adjusted RSSI table.

FIG. 7 shows a state machine in a retry processor.

FIGS. 8A and 8B show a flowchart describing a rate adaptation algorithm.

FIGS. 9A and 9B show results from two experiments using transceiverswith a rate adaptation module.

FIG. 10 is a plot illustrating a the response of a power adapter in thetransceiver.

DETAILED DESCRIPTION

FIG. 1 shows a wireless system. The system may be an ad hoc network ofwireless devices, e.g., a wireless Local Area Network (WLAN) thatcomplies with one of the IEEE 802.11 family of specifications. Thesystem may include a wireless transceiver 102 with a rate adaptationmodule 104 and one or more wireless client transceivers 106.

The transceiver 102 may communicate with a client transceiver 106 on anuplink channel (client transmitting to transceiver) and on a downlinkchannel (transceiver transmitting to client). The data rates in theuplink and downlink channels depend on the characteristics of thewireless environment and may differ from each other.

In an embodiment, the transceiver 102 may use a rate adaptation schemeto optimize a data rate in communicating with the client transceivers106. For a given data rate, throughput depends on the wirelessenvironment, which may be affected by, e.g., interference, packetcollisions, multipath fading, and implementation losses. The transceivermay select a physical (PHY) layer data rate based on the wirelesschannel qualities of the uplink and downlink to maximize averagethroughput.

FIG. 2 shows a schematic of a transceiver according to an embodiment.The transceiver may have a transmit section 202 and a receive section204. The rate adaptation module 104 may use packet loss data from thetransmit section 202 and a signal quality measure from the receivesection 204 to determine a suitable data rate for transmission in agiven wireless environment.

In an embodiment, the signal quality measure is the RSSI (ReceivedSignal Strength Indicator). In alternative embodiments, other signalquality measures, such as SNR (signal to noise ratio), SINR (signal tointerference noise ratio), SQM (signal quality measure, which is themean (geometric, arithmetic, or other) of the SNRs across all OFDMtones), etc., may be used.

The RSSI (or other signal quality measure) may be determined fromsuccessfully received packets, i.e., those packets received at theantenna 205 and processed by the RF (radio frequency) section 206,baseband section 208, and MAC (Media Access Control) section 210. RSSIcorresponds to a drop 302 in the AGC for a successfully received packet,as shown in FIG. 3. The magnitude of the drop in AGC depends on thestrength of the signal on which the packet is received. A higher RSSIindicates a “better” channel, which may support higher data rates. In anembodiment, the RSSI measurement has a measurement error correspondingto the AGC step height, e.g., +/−2 dB, and may be reliable aboveapproximately 5 dB.

The RSSI may be used to construct a nominal RSSI table which may beadapted on a per-client basis. Depending on the complexity ofimplementation, multiple RSSI tables can also be maintained, which maybe indexed by “packet size” (e.g., 64 bytes, 1500 bytes, etc.),“wireless environment” (e.g., home, outdoors, stadium, enterprise,etc.), etc. In other words, for different applications and environments,different tables can be used.

FIG. 4 shows an exemplary nominal RSSI table. A data rate may beselected based on a measured RSSI. For example, in this table, an RSSIof 34 (or any other value between 33 and <36) would indicate a channelquality capable of supporting a data rate of 48 Mbps.

The rate adaptation module 104 may receive a packet loss indicator fromthe transmit section. In an embodiment, the packet loss indicator is aretry counter value. In alternative embodiments, other packet lossindicators, such as bit-error update, packet error update, symbol errorupdate, CRC (Cyclic Redundancy Check) indicators, etc., may be used.

Packets (e.g., A, B, C, D) may be queued in a software portion 212 ofthe transmit section, and copies of a packet to be sent (e.g., A(1),A(2), . . . ) may be queued in a hardware portion 214 of the transmitsection. A packet may need to be resent, or “retried”, until anacknowledgment (ACK) signal signifying a successful transmission of thepacket is received from the receiving client. A retry counter 216 may beincremented on each retry of a packet to be sent, and the retry countervalue provided to the rate adaptation module 104.

In an embodiment, the hardware section can be designed so thatsuccessive “retried” packets (e.g., A(1), A(2), . . . ) are sent atprogressively lower rates until a “successful” transmission. The retrycounter 216 may be incremented on each retry of a packet to be sent, andthe retry counter value provided to the rate adaptation module 104. Sucha feature allows successful packet transmission, while the rateadaptation algorithm can adapt to the changing environment (on a slowertime scale, depending upon the retry counter). The following tableprovides an exemplary relationship between data rates transmitted vs.retry counter value.

HARDWARE PACKET RETRY TABLE Retry Retry Retry Retry Retry Retry RetryRetry Retry Count = Count = Count = Count = Count = Count = Count =Count = Count = 0 1 2 3 4 5 6 7 8 Index (Mbps) (Mbps) (Mbps) (Mbps)(Mbps) (Mbps) (Mbps) (Mbps) (Mbps) 13 72 72 54 48 36 24 12 6 1 12 54 5448 36 24 12 6 2 1 11 48 48 36 24 12 6 2 1 1 10 36 36 24 12 6 2 1 1 1 924 24 12 6 2 1 1 1 1 8 18 18 12 6 2 1 1 1 1 7 12 12 6 2 1 1 1 1 1 6 9 96 2 1 1 1 1 1 5 6 6 2 1 1 1 1 1 1 4 22 22 11 5.5 2 1 1 1 1 3 11 11 5.5 21 1 1 1 1 2 5.5 5.5 2 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 11

For example, let the data rate as predicted by the rate adaptationalgorithm be 54 Mbps (2nd row of the table). If this packet is retried,the first transmission occurs at 54 Mbps, the next transmission occursat 48 Mbps, the next at 36 Mbps, and so on until the packet issuccessfully transmitted.

The number of retries for a given packet may depend on the quality ofthe channel. A higher number of retries may indicate a “worse” channel,which may only support lower data rates. The transmit section may onlyretry the packet up to a maximum number. If the maximum retry count isachieved, the retry counter may signal a bailout (“BAIL”), in whichcase, the transmit section may drop the data rate for transmission to alowest possible rate.

FIG. 5 is a schematic diagram of a rate adaptation module according toan embodiment. The rate adaptation module receives two inputs; an RSSIvalue 502 from the receive section, and a retry counter value 504 fromthe transmit section. A filter 506 may be used to determine an averageRSSI value (RSSI_(avg)) 508 from the input RSSI 502, which may minimizenoise effects and provide a more stable measurement. A retry processor510 may use the input retry counter value to calibrate the average RSSIvalue, with) a Δ_(RSSI) 514 measurement The Δ_(RSSI) is an adjustment tothe average RSSI value due to differences in transmit/receive vendorboards, differences in transmit and receive wireless environment, orpower and/or link imbalances between transmission and reception of datapackets.

A rate selector 516 may use the RSSI_(avg) value 508, the Δ_(RSSI) value514, and the RRSI_(TH) values in a nominal table (such as that shown inFIG. 4) to form a confidence value. The confidence value may be givenby:Confidence[j]=RSSI_(avg)−RSSI_(TH) [j]−Δ _(RSSI) 1≦j≦54

FIG. 6 shows an example for a measured RSSI_(avg) of 24 dB and Δ_(RSSI)of −2 dB. A positive confidence value indicates a data rate that can besupported by the channel quality and a negative confidence valueindicates a data rate that cannot be supported by the channel quality.An optimal data rate may be selected by selecting the highest data ratein the table with a positive confidence value, i.e.,Rate=argmin(j){RSSI_(avg)−RSSI_(TH) [j]−Δ _(RSSI)}+

In this example, the rate selector may select a data rate of 24 Mbps,the highest data rate with a positive confidence value. This maymaximize throughput while maintaining reliable link quality.

Although FIG. 6 shows an adjusted RSSI table including confidence valuescalculated for all data rates, in an embodiment the rate selector 516may only calculate confidence values for data rates in the tableadjacent to the data rate corresponding to the measured RSSI_(avg)value, e.g., 38 Mbps and 12 Mbps in FIG. 6.

The retry processor may include a state machine, such as that shown inFIG. 7. The state machine may be used to determine whether the adjustedtable is too optimistic (i.e., data rate is too high for the conditions)or too pessimistic (i.e., data rate is too low for the conditions). Thestate machine may track the number of successful (R=0) and unsuccessful(R>0) packet transmissions. Too many successive packet transmissionspackets without retry may suggest that the adjusted table is toopessimistic, and too many successive transmissions with retry valuesgreater than zero may suggest that the adjusted table is too optimistic.The retry processor may use this information to adjust the Δ_(RSSI) upor down. The adjustment in Δ_(RSSI) may change the confidence values inthe adjusted table and possibly the data rate. However, a change inΔ_(RSSI) will not necessarily result in a change in data rate.

The retry processor 516 may start at state 0. If the retry counterreturns a retry count of zero, i.e., the packet is transmittedsuccessfully without retry, the state machine may move to from state 0to state −1. If the next packet is not successfully sent (i.e., R>0),the state machine may return to state 0. Alternatively, if the nextpacket is successfully sent without retry, the machine may move fromstate −1 to state −2. Successive successful transmissions withoutretries may move the state machine to a maximum success state 702. Ifthe state machine reaches this state, it is assumed that the table istoo pessimistic and must be adjusted. In this case, Δ_(RSSI) may beadjusted to a value Δ_(RSSI)−Δ₁, where Δ₁ is a pre-selected adjustmentvalue.

From state 0, if the retry counter returns a value greater than zero(indicating a packet was resent), the state machine may move from state0 to state 1. If packet is successfully sent in the next retry, thestate machine may return to state 0. Alternatively, if the packet isretried again, the state machine may move to state 2. The state machinemay move to progressively higher states as the same packet, or the nextpacket, is repeatedly retried. This may continue up until a maximumfailure state 704. If the state machine reaches this state, it isassumed that the table is too optimistic and must be adjusted. In thiscase, Δ_(RSSI) may be adjusted to a value of Δ_(RSSI)+Δ₂, where Δ₂ is apre-selected adjustment value.

The state machine may be modified from that shown in FIG. 7 inalternative embodiments. For example, from state 0, if the retry counterreturns a value N greater than zero (indicating a packet was resent),the state machine may move from state 0 to state N. If packet issuccessfully sent in the next retry, the state machine may go to stateN−1. Alternatively, if the packet is retried again, the state machinemay move to state N+1.

The values of Δ₁ and Δ₂ may be programmable in software. For example, inan embodiment, the following values were used: Δ₁=0.5 dB, MAX SUCCESS=3;and Δ₂=1 dB, MAX FAILURE=2.

Other measures of packet loss may be used in the state machine, such asbit-error, packet error, symbol error, CRC failures, etc.

In normal operation, the adjusted RSSI (or other signal quality measure)table may be matched to the environment. Sporadic failures may occur dueto additive white Gaussian noise (AWGN), phase noise, scrambler effects,collision, or interference, but typically, the conditions will requirethe Δ_(RSSI) be adjusted only rarely or in both directions, therebycanceling the adjustments out. Repeated successes or failures mayindicate that the RSSI table is not matched to the environment and maylead to Δ_(RSSI) updates. However, as stated above, a change in Δ_(RSSI)will not necessarily result in a change in data rate. Multiple Δ_(RSSI)updates are typically required to actually change rates. The updates maymerely change the confidence factors.

FIGS. 8A and 8B show a flowchart describing an exemplary rate adaptationalgorithm. The rate adaptation module receives a measured RSSI valuefrom the receive section (block 802) and determines RSSI_(avg) using thefilter 506 (block 804). The rate adaptation module receives the retrycounter value from the transmit section (block 806) and determines aΔ_(RSSI) value (block 808). The rate adaptation generates confidencevalues corresponding to different data rates using the RSSIavg value,Δ_(RSSI) value, and RSSI_(TH) values in a nominal RSSI table (block810). The rate adaptation module may then select a data rate having thelowest positive confidence value (block 812). The rate adaptation modulemay continue to monitor the retry counter value (block 814). If theretry counter value causes the state machine (FIG. 7) to reach a maximumfailure value (block 816) or a maximum success value (block 818), therate adaptation module may update the Δ_(RSSI) value (block 820) and theconfidence values (block 822).

FIGS. 9A and 9B are plots showing the results of two experimentsconducted to test the rate adaptation algorithm. Both tests used atransceiver in a cubicle, with a client receiver 45 feet away andtransmissions on channel 11. The first test simulates an officeenvironment, with a mean Δ_(RSSI) of 3.15 dB. In this scenario, the rateadaptation module selected a data rate of 36 Mbps over 50% of the time.In the second experiment, a bias of 6 dB was applied to simulate adifferent environment, with a resulting mean Δ_(RSSI) of 9.27 dB. Inthis scenario, the rate adaptation module also selected a data rate of36 Mbps over 50% of the time.

In an embodiment, the rate adaptation module may include a switch 520(FIG. 5), which may select the output of the retry processor 510 overthe output of the rate selector 516 if the data rate falls below aminimum data rate, e.g., 6 Mbps, below which the RSSI measurement maynot be accurate.

In an embodiment, the rate adaptation module may include a power adaptor522. FIG. 10 is a graph showing the response of the power adaptor fordifferent data rates. The power may be increased for lower data rates toaccount for presumed low link quality. The power may be reduced for highdata rates for presumed good link quality. The response may include ahysteresis loop 1002 to prevent too frequent changes in power, e.g., dueto the user walking away from an access point. The power adaptor 522 maybe used to improve range for low data rates and reduce power amplifiernon-linearity at high data rates.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention. For example, blocks in theflowchart may be skipped or performed out of order and still producedesirable results. Accordingly, other embodiments are within the scopeof the following claims.

The invention claimed is:
 1. A method comprising: generating confidencemeasures for a plurality of data rates based at least on a firstindicator and a second indicator, wherein the first indicatorcorresponds to packet loss associated with packets transmitted by adevice at a first data rate that is selected from the plurality of datarates, and the second indicator corresponds to one or more signalquality values associated with one or more packets received by thedevice; selecting, from the plurality of data rates, a second data ratebased at least on the confidence measures; and transmitting one or moreadditional packets at the second data rate.
 2. The method of claim 1,wherein selecting the second data rate comprises selecting as the seconddata rate a data rate associated with a positive confidence measure ofthe confidence measures.
 3. The method of claim 1, wherein generatingthe confidence measures comprises determining an average valueassociated with the second indicator.
 4. The method of claim 3,comprising: determining a calibration value associated with the firstindicator, the calibration value determined to refine the average value;and determining a confidence measure based on the average value and thecalibration value.
 5. The method of claim 1, comprising: identifying anominal signal quality parameter from a nominal table containing aplurality of signal quality parameters including the second indicator,each of the plurality of signal quality parameters having a differentvalue and corresponding to a different data rate supported by a channelthrough which packets are transmitted or received, wherein selecting thesecond data rate is performed based on the first indicator, the secondindicator, and the nominal signal quality parameter.
 6. The method ofclaim 1, comprising: monitoring a number of unsuccessful packetstransmitted at the second data rate; and adjusting, based on themonitored number, the second data rate to a third data rate at whichpackets are to be transmitted, the third data rate being lower than thesecond data rate.
 7. A system comprising: a transceiver configured totransmit packets and receive packets; and circuitry communicativelycoupled with the transceiver, the circuitry configured to: generateconfidence measures for a plurality of data rates based at least on afirst indicator and a second indicator, wherein the first indicatorcorresponds to packet loss associated with packets transmitted by thetransceiver at a first data rate that is selected from the plurality ofdata rates, and the second indicator corresponds to one or more signalquality values associated with one or more packets received by thetransceiver, select, from the plurality of data rates, a second datarate based at least on the confidence measures, and cause thetransceiver to transmit one or more additional packets at the seconddata rate.
 8. The system of claim 7, wherein the circuitry is configuredto select as the second data rate a data rate associated with a positiveconfidence measure of the confidence measures.
 9. The system of claim 7,wherein the circuitry is configured to determine an average valueassociated with the second indicator.
 10. The system of claim 9, whereinthe circuitry is configured to determine a calibration value associatedwith the first indicator, the calibration value determined to refine theaverage value, and determine a confidence measure based on the averagevalue and the calibration value.
 11. The system of claim 7, wherein thecircuitry is configured to identify a nominal signal quality parameterfrom a nominal table containing a plurality of signal quality parametersincluding the second indicator, each of the plurality of signal qualityparameters having a different value and corresponding to a differentdata rate supported by a channel through which packets are transmittedor received, wherein the second data rate is selected based at least onthe first indicator, the second indicator, and the nominal signalquality parameter.
 12. The system of claim 7, wherein the circuitry isconfigured to: monitor a number of unsuccessful packets transmitted atthe second data rate; and adjust, based on the monitored number, thesecond data rate to a third data rate at which packets are to betransmitted, the third data rate being lower than the second data rate.13. The system of claim 7, wherein the first indicator includes a retrycounter parameter, wherein the circuitry is configured to increment theretry counter parameter in response to a packet retransmission due to anunsuccessful transmission, and wherein the second data rate is selectedbased at least on the retry counter parameter.
 14. The system of claim7, wherein the circuitry is configured to: adjust the first indicator bya first predetermined value when a number of successive successfultransmissions of the one or more additional packets at the second datarate exceeds a first predetermined threshold, and adjust the firstindicator by a second predetermined value when a number of successiveunsuccessful transmissions of the one or more additional packets at thesecond data rate exceeds a second predetermined threshold.
 15. A devicecomprising: circuitry configured to generate confidence measures for aplurality of data rates based at least on a first indicator and a secondindicator, wherein the first indicator corresponds to packet lossassociated with transmitted packets that are transmitted at a first datarate that is selected from the plurality of data rates, and the secondindicator corresponds to one or more signal quality values associatedwith one or more received packets; and a rate selector configured toselect, from the plurality of data rates, a second data rate based atleast on the confidence measures, and cause a transmission of one ormore additional packets at the second data rate.
 16. The device of claim15, wherein the rate selector is configured to select as the second datarate a data rate associated with a positive confidence measure of theconfidence measures.
 17. The device of claim 15, wherein the circuitryis configured to determine an average value associated with the secondindicator.
 18. The device of claim 17, wherein the circuitry isconfigured to determine a calibration value associated with the firstindicator, the calibration value determined to refine the average value,and determine a confidence measure based on the average value and thecalibration value.
 19. The device of claim 15, wherein the circuitry isconfigured to identify a nominal signal quality parameter from a nominaltable containing a plurality of signal quality parameters including thesecond indicator, each of the plurality of signal quality parametershaving a different value and corresponding to a different data ratesupported by a channel through which packets are transmitted orreceived, wherein the second data rate is selected based at least on thefirst indicator, the second indicator, and the nominal signal qualityparameter.
 20. The device of claim 15, wherein the circuitry isconfigured to: monitor a number of unsuccessful packets transmitted atthe second data rate; and adjust, based on the monitored number, thesecond data rate to a third data rate at which packets are to betransmitted, the third data rate being lower than the second data rate.21. The device of claim 15, wherein the first indicator is based on aretry counter parameter, wherein the circuitry comprises a retryprocessor configured to increment the retry counter parameter inresponse to a packet retransmission due to an unsuccessful transmission,and wherein the second data rate is selected based at least on the retrycounter parameter.
 22. The device of claim 15, wherein the circuitry isconfigured to: adjust the first indicator by a first predetermined valuewhen a number of successive successful transmissions of the one or moreadditional packets at the second data rate exceeds a first predeterminedthreshold, and adjust the first indicator by a second predeterminedvalue when a number of successive unsuccessful transmissions of the oneor more additional packets at the second data rate exceeds a secondpredetermined threshold.